package Logica.Piso.Transitable;

import Logica.ElementoColeccionable.ElementoColeccionable;
import Logica.Jugador.Jugador;
import Logica.Objeto.Objeto;
import Logica.Piso.Piso;
import Logica.Premio.Premio;

public abstract class Transitable extends Piso {
	protected Jugador jugador;
	protected Objeto objeto;
	protected Premio premio;
	protected ElementoColeccionable elementoColeccionable;
	protected int gasto_de_combustible;

	/**
	 * Crea una nueva instancia de transitable.
	 *
	 * @param jugador actual del nivel
	 */
	public Transitable( Jugador jugador ) {
		this.jugador = jugador;
		objeto = null;
		premio = null;
		elementoColeccionable = null;
	}

	/* (non-Javadoc)
	 * @see Logica.Piso.Piso#hayPremio()
	 */
	public boolean hayPremio() {
		return (premio!=null);
	}

	/* (non-Javadoc)
	 * @see Logica.Piso.Piso#hayObjeto()
	 */
	public boolean hayObjeto() {
		return (objeto!=null);
	}

	/* (non-Javadoc)
	 * @see Logica.Piso.Piso#hayElementoColeccionable()
	 */
	public boolean hayElementoColeccionable() {
		return (elementoColeccionable!=null);
	}

	/* (non-Javadoc)
	 * @see Logica.Piso.Piso#obtenerObjeto()
	 */
	public Objeto obtenerObjeto() {
		return objeto;
	}

	/* (non-Javadoc)
	 * @see Logica.Piso.Piso#obtenerPremio()
	 */
	public Premio obtenerPremio() {
		return premio;
	}

	/* (non-Javadoc)
	 * @see Logica.Piso.Piso#obtenerElementoColeccionable()
	 */
	public ElementoColeccionable obtenerElementoColeccionable() {
		return elementoColeccionable;
	}

	/**
	 * Establecer elemento coleccionable.
	 *
	 * @param e
	 */
	public void establecerElementoColeccionable(ElementoColeccionable e) {
		elementoColeccionable=e;
	}

	/**
	 * Establecer premio.
	 *
	 * @param p
	 */
	public void establecerPremio(Premio p) {
		premio=p;
	}

	/**
	 * Establecer objeto.
	 *
	 * @param o
	 */
	public void establecerObjeto(Objeto o) {
		objeto=o;
	}

	/**
	 * Establecer jugador.
	 *
	 * @param j
	 */
	public void establecerJugador(Jugador j) {
		jugador=j;
	}

	/**
	 * Remover premio.
	 */
	public void removerPremio() {
		premio = null;
	}

	/**
	 * Remover objeto.
	 */
	public void removerObjeto() {
		objeto = null;
	}

	/**
	 * Remover elemento coleccionable.
	 */
	public void removerElementoColeccionable() {
		elementoColeccionable = null;
	}

}
